﻿using mozhi.smarterp.Business.Common;
using System;
using System.Collections.Generic;
using System.Text;
using Volo.Abp.Application.Dtos;

namespace mozhi.smarterp.Business.Purchases.Receipt
{
    public class PurchaseReceiptDto : DocumentHeaderDto
    {
        public Guid SupplierId { get; set; }

        public string SupplierName {  get; set; }

        /// <summary>
        /// 是否退货
        /// </summary>
        public bool IsCreditNote { get; set; }

        /// <summary>
        /// 仓管员
        /// </summary>
        public Guid WarehouseClerkId { get; set; }

        public string WarehouseClerkName {  get; set; }

        /// <summary>
        /// 采购部门
        /// </summary>
        public Guid PurchaseDepartmentId { get; set; }

        public string PurchaseDepartmentName {  get; set; }

        /// <summary>
        /// 采购员
        /// </summary>
        public Guid PurchaserId { get; set; }

        public string PurchaserName {  get; set; }


        public Guid? PaymentTemrId { get; set; }

        public List<PurchaseReceiptItemDto> Items { get; set; }
    }

    public class PurchaseReceiptItemDto : DocumentBodyDto
    {
        public Guid WarehouseId { get; set; }

        public string WarehouseName {  get; set; }

        public Guid? LocationId { get; set; }

        public string LocationName { get; set; }

        public Guid PurchaseUnitId { get; set; }

        public string PurchaseUnitName {  get; set; }

        public decimal PurchaseQuantity { get; set; }

        public decimal ReceiptQuantity { get; set; }

        public string BatchNumber { get; set; }

        public string SerialNumber { get; set; }

        /// <summary>
        /// 生产日期
        /// </summary>
        public DateTime? ProductionDate { get; set; }

        /// <summary>
        /// 保质期（天）
        /// </summary>
        public decimal? ShelfLifeDays { get; set; }

        /// <summary>
        /// 过期日期
        /// </summary>
        public DateTime? ExpirationDate { get; set; }

        public decimal? DiscountRate { get; set; }

        public bool IsGift { get; set; }
    }
}
